package com.ylsk.check.mapper;

import java.util.List;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ylsk.check.domain.JeevesReport;
import com.ylsk.check.domain.so.JeevesReportSO;
import com.ylsk.check.domain.vo.JeevesReportVO;

/**
 * 占道上报Mapper接口
 *
 * @author yangsy
 * @date 2024-01-02
 */
public interface JeevesReportMapper extends BaseMapper<JeevesReport>
{
    /**
     * 查询占道上报
     *
     * @param jeevesReportId 占道上报主键
     * @return 占道上报
     */
    public JeevesReportVO selectJeevesReportByJeevesReportId(Long jeevesReportId);

    /**
     * 查询占道上报列表
     *
     * @param jeevesReportSO 占道上报
     * @return 占道上报集合
     */
    public List<JeevesReportVO> selectJeevesReportList(JeevesReportSO jeevesReportSO);

    /**
     * 新增占道上报
     *
     * @param jeevesReport 占道上报
     * @return 结果
     */
    public int insertJeevesReport(JeevesReport jeevesReport);

    /**
     * 修改占道上报
     *
     * @param jeevesReport 占道上报
     * @return 结果
     */
    public int updateJeevesReport(JeevesReport jeevesReport);

    /**
     * 删除占道上报
     *
     * @param jeevesReportId 占道上报主键
     * @return 结果
     */
    public int deleteJeevesReportByJeevesReportId(Long jeevesReportId);

    /**
     * 批量删除占道上报
     *
     * @param jeevesReportIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteJeevesReportByJeevesReportIds(Long[] jeevesReportIds);


    /**
     * 今日占道施工数据
     * @return
     */
    public List<JeevesReportVO> selectJeevesByReportInfoId();


    /**
     * 查询占道上报列表 未撤场的数据
     *
     * @param jeevesReportSO 占道上报
     * @return 占道上报集合
     */
    public List<JeevesReportVO> selectJeevesNotWithdrawnList(JeevesReportSO jeevesReportSO);

    /**
     * 获取报备状态为非占道施工，但是今日开始需要占道施工的数据
     * @param jeevesReportSO
     * @return
     */
    public List<JeevesReportVO> getTodayJeevesReport(JeevesReportSO jeevesReportSO);


    /**
     * 自动生成检查单
     * @param jeevesReportSO
     * @return
     */
    public List<JeevesReportVO> autoCreateCheckTask(JeevesReportSO jeevesReportSO);

    /**
     * 查询未提交撤场上报的占道上报列表
     *
     * @param jeevesReportSO 占道上报
     * @return 占道上报集合
     */
    public List<JeevesReportVO> selectNotSubmitWithdrawalJeevesReportList(JeevesReportSO jeevesReportSO);

}
